package com.cskaoyan.javase.method._2exercise;

import java.lang.management.GarbageCollectorMXBean;
import java.util.Scanner;

/**
 * 练习:
 * 求两个数的最大值。
 * 键盘录入两个值，求最大值。
 * 定义一个方法用于判断一个正整数的奇偶性，要求：
 *      奇数方法返回false
 *      偶数方法返回true
 *
 * 方法的语法:
 *  [修饰符列表] 返回值类型 方法名 (形式参数列表){
 *      // 方法体
 *  }
 *
 * @since 14:50
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int num1 = 100;
        int num2 = 300;
        System.out.println("num1和num2的最大值是:" + getMaxTwoNum(num1, num2));

        Scanner sc = new Scanner(System.in);
        System.out.println("键盘录入的两个数的最大值是:" + getMaxByScanner(sc));
    }

    // 求两个double类型数的最大值
    // Access can be private 涉及访问权限的概念,面向对象时再讲
    public static double getMaxTwoNum(double num1, double num2) {
        return (num1 > num2) ? num1 : num2;
    }

    // 要求方法当中键盘录入两个int值，求它们的最大值。
    /*
        形参的数据类型可以是基本数据类型,也可以是引用数据类型
        如果形参是基本数据类型,那么要求方法传入一个对应兼容类型的数值.
        而如果形参是引用数据类型的话,那么要求方法传入一个对应兼容类型的对象.
     */
    public static int getMaxByScanner(Scanner sc) {
        // 方法传入了一个Scanner对象,那么在方法体中就可以使用该对象了
        System.out.println("请键盘录入两个int数值:");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        return (num1 > num2) ? num1 : num2;
    }

    /*
     定义一个方法用于判断一个正整数的奇偶性，要求：
        奇数,方法返回false
        偶数,方法返回true
     */
    public static boolean judgeParity(int num) {
        if (num % 2 == 0) {
            // 是偶数
            return true;
        }
        // 代码运行到这里,num一定是奇数
        return false;
    }

    // 定义一个方法，求圆的面积：
    // 方法参数:半径 (radius)
    // 圆周率:3.14（获取用Math.PI获取）
    public static double getAreaOfCircle(int radius) {
        /*
            Math是Java当中的数学工具类
            基本上Java当中所有和数学运算相关的操作都能够在该类中找到
         */
        return Math.PI * radius * radius;
    }
}
